predicates
run
case(string)
hombre(perso)
mujer(perso)
pariente(perso,perso)
esposos(perso,perso)
padre(perso,perso)
madre(perso,perso)
hija(perso,perso)
hijo(perso,perso)
hermano_de(perso,perso)
hermana_de(perso,perso)
hermanos(perso,perso)
primo_de(perso,perso)
prima_de(perso,perso)
tia_de(perso,perso)
tio_de(perso,perso)
sobrino_de(perso,perso)
sobrina_de(perso,perso)
abuelo_de(perso,perso)
abuela_de(perso,perso)
ancestros(perso,perso)
suegro_de(perso,perso)
suegra_de(perso,perso)
cuñada_de(perso,perso)
cuñado_de(perso,perso)
goal
run .
clauses
hombre(francisco).
hombre(juan).
hombre(benito).
hombre(arcesio).
hombre(alex).
mujer(katherine).
mujer(isabel).
mujer(julia).
mujer(ana).
mujer(cristina).
mujer(laura).
mujer(silvia).
pariente(francisco,juan).
pariente(francisco,julia).
pariente(francisco,ana).
pariente(katherine,juan).
pariente(katherine,julia).
pariente(katherine,ana).
pariente(juan,arcesio).
pariente(juan,cristina).
pariente(isabel,arcesio).
pariente(isabel,cristina).
pariente(benito,alex).
pariente(benito,laura).
pariente(benito,silvia).
pariente(ana,alex).
pariente(ana,laura).
pariente(ana,silvia).
/* VENTANA */
run :-
clearwindow,
makewindow(2,3,14,"
UNIVERSIDAD SANTIAGO DE CALI ",0,0,24,79),
write('\n','\n'),
write("
****** PARIENTE ******",'\n','\n'),
write("
1 Madre de ...............
: A ",'\n'),
write("
2 Padre de ................
: B ",'\n'),
write("
3 Esposos .................
: C ",'\n'),
write("
4 Hija de ...................
: D ",'\n'),
write("
5 Hijo de ....................
: E ",'\n'),
write("
6 Prima de ................... : F
",'\n'),
write("
7 Primo de ................... : G
",'\n'),
write("
8 Tia de .....................
: H ",'\n'),
write("
9 Tio de .....................
: I ",'\n'),
write("
10 Sobrina de ................... : J ",'\n'),
write("
11 Sobrino de ................... : K ",'\n'),
write("
12 Abuela de ................... : L ",'\n'),
write("
13 Abuelo de ................... : M ",'\n'),
write("
14 Ancestros .................... : N",'\n'),
write("
15 Suegra de .................... : Ñ ",'\n'),
write("
16 Suegro de .................... : O ",'\n'),
write("
17 Cuñada de ................... : P ",'\n'),
write("
18 Cuñado de ................... : Q ",'\n'),
write("
EXIT
....................... : X ",'\n','\n'),
write("
Digitar opción ..................... : "),
readln(N),
write('\n'),
upper_lower(E,N),
case(E),
"E" = "Q".
run if run.
/**** REGLAS *****/
madre(X,Y):-mujer(X),pariente(X,Y).
padre(X,Y):-hombre(X),pariente(X,Y).
esposos(X,Y):-pariente(X,S),pariente(Y,S),X<>Y.
hija(Y,X):-mujer(Y),pariente(X,Y).
hijo(Y,X):-hombre(Y),pariente(X,Y).
hermano_de(X,Y):-hombre(X),padre(Z,X),padre(Z,Y),X<>Y.
hermana_de(X,Y):-mujer(X),padre(Z,X),padre(Z,Y),X<>Y.
hermanos(X,Y):-padre(Z,X),padre(Z,Y),X<>Y.
primo_de(X,Y):-hombre(X),pariente(Z,X),pariente(M,Y),hermanos(Z,M).
prima_de(X,Y):-mujer(X),pariente(Z,X),pariente(M,Y),
hermanos(Z,M).
tia_de(X,Y):-mujer(X),pariente(Z,Y),hermanos(X,Z).
tio_de(X,Y):-hombre(X),pariente(Z,Y),hermanos(X,Z).
sobrino_de(X,Y):-hombre(X),pariente(Z,X),hermanos(Y,Z).
sobrina_de(X,Y):-mujer(X),pariente(Z,X),hermanos(Y,Z).
abuela_de(X,Y):-mujer(X),pariente(Z,Y),padre(X,Z).
abuelo_de(X,Y):-hombre(X),pariente(Z,Y),padre(X,Z).
ancestros(X,Y):-pariente(Z,Y),pariente(X,Z).
suegro_de(X,Y):-hombre(X),esposos(Y,S),padre(X,S).
suegra_de(X,Y):-mujer(X),esposos(Y,S),madre(X,S).
cuñada_de(X,Y):-mujer(X),esposos(Y,Z),hermanos(Z,X).
cuñado_de(X,Y):-hombre(X),esposos(Y,Z),hermanos(Z,X).
/************* GOALS INTERNOS ****************/
case("A") :-
clearwindow,
write(" 1 MADRE "),nl,
madre(X,Y),mujer(X),pariente(X,Y),
write( X , " Madre de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("B") :-
clearwindow,
write(" 2 PADRE "),nl,
padre(X,Y),hombre(X),pariente(X,Y),
write( X , " Padre de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("C") :-
clearwindow,
write(" 3 ESPOSOS "),nl,
esposos(X,Y),pariente(X,S),pariente(Y,S),X<>Y,
write( X , " Esposo de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("D") :-
clearwindow,
write(" 4 HIJAS "),nl,
hija(Y,X),mujer(Y),pariente(X,Y),
write( X , " Hija de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("E") :-
clearwindow,
write(" 5 HIJOS "),nl,
hijo(Y,X),hombre(Y),pariente(X,Y),
write( X , " Hijo de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("F") :-
clearwindow,
write(" 6 PRIMAS "),nl,
prima_de(X,Y),mujer(X),pariente(Z,X),pariente(M,Y), hermanos(Z,M),
write( X , " Prima de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("G") :-
clearwindow,
write(" 7 PRIMOS "),nl,
primo_de(X,Y),hombre(X),pariente(Z,X),pariente(M,Y),hermanos(Z,M),
write( X , " Primo de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("H") :-
clearwindow,
write(" 8 TIAS "),nl,
tia_de(X,Y),mujer(X),pariente(Z,Y),hermanos(X,Z),
write( X , " Tia de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("I") :-
clearwindow,
write(" 9 TIOS "),nl,
tio_de(X,Y),hombre(X),pariente(Z,Y),hermanos(X,Z),
write( X , " Tio de", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("J") :-
clearwindow,
write(" 10 SOBRINAS "),nl,
sobrina_de(X,Y),mujer(X),pariente(Z,X),hermanos(Y,Z),
write( X , " Sobrina de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("K") :-
clearwindow,
write(" 11 SOBRINOS "),nl,
sobrino_de(X,Y),hombre(X),pariente(Z,X),hermanos(Y,Z),
write( X , " Sobrino de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("L") :-
clearwindow,
write(" 12 ABUELA "),nl,
abuela_de(X,Y),mujer(X),pariente(Z,Y),padre(X,Z),
write( X , " Abuela de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("M") :-
clearwindow,
write(" 13 ABUELO "),nl,
abuelo_de(X,Y),hombre(X),pariente(Z,Y),padre(X,Z),
write( X , " Abuelo de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("N") :-
clearwindow,
write(" 14 ANCESTROS "),nl,
ancestros(X,Y),pariente(Z,Y),pariente(X,Z),
write( X , " Ancestro de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("Ñ")
:- clearwindow,
write(" 15 SUEGRA "),nl,
suegra_de(X,Y),mujer(X),esposos(Y,S),madre(X,S),
write( X , " Suegra de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("O") :-
clearwindow,
write(" 16 SUEGRO "),nl,
suegro_de(X,Y),hombre(X),esposos(Y,S),padre(X,S),
write( X , " Suegro de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("P") :-
clearwindow,
write(" 17 CUÑADAS "),nl,
cuñada_de(X,Y),mujer(X),esposos(Y,Z),hermanos(Z,X),
write( X , " Cuñada de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("Q") :-
clearwindow,
write(" 18 CUÑADOS"),nl,
cuñado_de(X,Y),hombre(X),esposos(Y,Z),hermanos(Z,X),
write( X , " Cuñado de ", Y ,'\n'),
nl,readln(_),
fail,readln(_).
case("X") :-
clearwindow,
cursor(10,15),
write(" FIN DEL PROGRAMA .............."),
exit,
nl.

